package top.iridescent.util;

import org.springframework.beans.BeanUtils;
import org.springframework.util.ObjectUtils;

import java.util.ArrayList;
import java.util.List;

public class BeanUtil extends BeanUtils {
    /**
     * 单层深拷贝列表
     * @param s 元数据列表
     * @param targetClass 目标列表类
     * @param <T> 传入列表元素的泛型
     * @param <S> 转换目标的泛型
     * @return
     */
    public static <T, S> List<T> copyFroList(List<S> s, Class<T> targetClass) {
        List<T> list = new ArrayList<>();
        if (!ObjectUtils.isEmpty(s)) {
            s.forEach(ele -> {
                try {
                    T t = targetClass.newInstance();
                    BeanUtils.copyProperties(ele, t);
                    list.add(t);
                } catch (InstantiationException e) {
                    e.printStackTrace();
                } catch (IllegalAccessException e) {
                    e.printStackTrace();
                }
            });
        }
        return list;
    }
}
